import UIKit

@available(iOS, introduced: 8.0, deprecated: 13.0, message: "Use UIContextualAction and related APIs instead.")
extension QKC where AA :UITableViewRowAction {
    open func style_qk_g() -> QKC<AA,YY,ZZ, UITableViewRowAction.Style >{
		 self +^ self.value.style
	}

    open func title_qk_s(_ title:  String?) -> QKC<AA,YY,ZZ, String?>{
		return link(next: title).then_QK { $0.value.title = title }
	}
    open func title_qk_g() -> QKC<AA,YY,ZZ, String?>{
		 self +^ self.value.title
	}

     open func backgroundColor_qk_s(_ backgroundColor:  UIColor?) -> QKC<AA,YY,ZZ, UIColor?>{
		return link(next: backgroundColor).then_QK { $0.value.backgroundColor = backgroundColor }
	}
     open func backgroundColor_qk_g() -> QKC<AA,YY,ZZ, UIColor?>{
		 self +^ self.value.backgroundColor
	}

     open func backgroundEffect_qk_s(_ backgroundEffect:  UIVisualEffect?) -> QKC<AA,YY,ZZ, UIVisualEffect?>{
		return link(next: backgroundEffect).then_QK { $0.value.backgroundEffect = backgroundEffect }
	}
     open func backgroundEffect_qk_g() -> QKC<AA,YY,ZZ, UIVisualEffect?>{
		 self +^ self.value.backgroundEffect
	}

}

@available(iOS 9.0, *)
extension QKC where AA :UITableViewFocusUpdateContext {
    open func previouslyFocusedIndexPath_qk_g() -> QKC<AA,YY,ZZ, IndexPath? >{
		 self +^ self.value.previouslyFocusedIndexPath
	}

    open func nextFocusedIndexPath_qk_g() -> QKC<AA,YY,ZZ, IndexPath? >{
		 self +^ self.value.nextFocusedIndexPath
	}

}

//_______________________________________________________________________________________________________________
@available(iOS 2.0, *)
extension QKC where AA :UITableView {
    open func style_qk_g() -> QKC<AA,YY,ZZ, UITableView.Style >{
		 self +^ self.value.style
	}

     open func dataSource_qk_s(_ dataSource:  UITableViewDataSource?) -> QKC<AA,YY,ZZ, UITableViewDataSource?>{
		return link(next: dataSource).then_QK { $0.value.dataSource = dataSource }
	}
     open func dataSource_qk_g() -> QKC<AA,YY,ZZ, UITableViewDataSource?>{
		 self +^ self.value.dataSource
	}

     open func delegate_qk_s(_ delegate:  UITableViewDelegate?) -> QKC<AA,YY,ZZ, UITableViewDelegate?>{
		return link(next: delegate).then_QK { $0.value.delegate = delegate }
	}
     open func delegate_qk_g() -> QKC<AA,YY,ZZ, UITableViewDelegate?>{
		 self +^ self.value.delegate
	}

    @available(iOS 10.0, *)
     open func prefetchDataSource_qk_s(_ prefetchDataSource:  UITableViewDataSourcePrefetching?) -> QKC<AA,YY,ZZ, UITableViewDataSourcePrefetching?>{
		return link(next: prefetchDataSource).then_QK { $0.value.prefetchDataSource = prefetchDataSource }
	}
    @available(iOS 10.0, *)
     open func prefetchDataSource_qk_g() -> QKC<AA,YY,ZZ, UITableViewDataSourcePrefetching?>{
		 self +^ self.value.prefetchDataSource
	}

    @available(iOS 11.0, *)
     open func dragDelegate_qk_s(_ dragDelegate:  UITableViewDragDelegate?) -> QKC<AA,YY,ZZ, UITableViewDragDelegate?>{
		return link(next: dragDelegate).then_QK { $0.value.dragDelegate = dragDelegate }
	}
    @available(iOS 11.0, *)
     open func dragDelegate_qk_g() -> QKC<AA,YY,ZZ, UITableViewDragDelegate?>{
		 self +^ self.value.dragDelegate
	}

    @available(iOS 11.0, *)
     open func dropDelegate_qk_s(_ dropDelegate:  UITableViewDropDelegate?) -> QKC<AA,YY,ZZ, UITableViewDropDelegate?>{
		return link(next: dropDelegate).then_QK { $0.value.dropDelegate = dropDelegate }
	}
    @available(iOS 11.0, *)
     open func dropDelegate_qk_g() -> QKC<AA,YY,ZZ, UITableViewDropDelegate?>{
		 self +^ self.value.dropDelegate
	}

		// default is UITableViewAutomaticDimension
    open func rowHeight_qk_s(_ rowHeight:  CGFloat ) -> QKC<AA,YY,ZZ, CGFloat >{
		return link(next: rowHeight).then_QK { $0.value.rowHeight = rowHeight }
	}
    open func rowHeight_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.rowHeight
	}

		// default is UITableViewAutomaticDimension
    open func sectionHeaderHeight_qk_s(_ sectionHeaderHeight:  CGFloat ) -> QKC<AA,YY,ZZ, CGFloat >{
		return link(next: sectionHeaderHeight).then_QK { $0.value.sectionHeaderHeight = sectionHeaderHeight }
	}
    open func sectionHeaderHeight_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.sectionHeaderHeight
	}

		// default is UITableViewAutomaticDimension
    open func sectionFooterHeight_qk_s(_ sectionFooterHeight:  CGFloat ) -> QKC<AA,YY,ZZ, CGFloat >{
		return link(next: sectionFooterHeight).then_QK { $0.value.sectionFooterHeight = sectionFooterHeight }
	}
    open func sectionFooterHeight_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.sectionFooterHeight
	}

		// default is UITableViewAutomaticDimension, set to 0 to disable
    @available(iOS 7.0, *)
    open func estimatedRowHeight_qk_s(_ estimatedRowHeight:  CGFloat ) -> QKC<AA,YY,ZZ, CGFloat >{
		return link(next: estimatedRowHeight).then_QK { $0.value.estimatedRowHeight = estimatedRowHeight }
	}
    @available(iOS 7.0, *)
    open func estimatedRowHeight_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.estimatedRowHeight
	}

		// default is UITableViewAutomaticDimension, set to 0 to disable
    @available(iOS 7.0, *)
    open func estimatedSectionHeaderHeight_qk_s(_ estimatedSectionHeaderHeight:  CGFloat ) -> QKC<AA,YY,ZZ, CGFloat >{
		return link(next: estimatedSectionHeaderHeight).then_QK { $0.value.estimatedSectionHeaderHeight = estimatedSectionHeaderHeight }
	}
    @available(iOS 7.0, *)
    open func estimatedSectionHeaderHeight_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.estimatedSectionHeaderHeight
	}

		// default is UITableViewAutomaticDimension, set to 0 to disable
    @available(iOS 7.0, *)
    open func estimatedSectionFooterHeight_qk_s(_ estimatedSectionFooterHeight:  CGFloat ) -> QKC<AA,YY,ZZ, CGFloat >{
		return link(next: estimatedSectionFooterHeight).then_QK { $0.value.estimatedSectionFooterHeight = estimatedSectionFooterHeight }
	}
    @available(iOS 7.0, *)
    open func estimatedSectionFooterHeight_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.estimatedSectionFooterHeight
	}

		// allows customization of the frame of cell separators; see also the separatorInsetReference property. Use UITableViewAutomaticDimension for the automatic inset for that edge.
    @available(iOS 7.0, *)
    open func separatorInset_qk_s(_ separatorInset:  UIEdgeInsets ) -> QKC<AA,YY,ZZ, UIEdgeInsets >{
		return link(next: separatorInset).then_QK { $0.value.separatorInset = separatorInset }
	}
    @available(iOS 7.0, *)
    open func separatorInset_qk_g() -> QKC<AA,YY,ZZ, UIEdgeInsets >{
		 self +^ self.value.separatorInset
	}

		// Changes how custom separatorInset values are interpreted. The default value is UITableViewSeparatorInsetFromCellEdges
    @available(iOS 11.0, *)
    open func separatorInsetReference_qk_s(_ separatorInsetReference:  UITableView.SeparatorInsetReference ) -> QKC<AA,YY,ZZ, UITableView.SeparatorInsetReference >{
		return link(next: separatorInsetReference).then_QK { $0.value.separatorInsetReference = separatorInsetReference }
	}
    @available(iOS 11.0, *)
    open func separatorInsetReference_qk_g() -> QKC<AA,YY,ZZ, UITableView.SeparatorInsetReference >{
		 self +^ self.value.separatorInsetReference
	}

		// the background view will be automatically resized to track the size of the table view.  this will be placed as a subview of the table view behind all cells and headers/footers.  default may be non-nil for some devices.
    @available(iOS 3.2, *)
    open func backgroundView_qk_s(_ backgroundView:  UIView? ) -> QKC<AA,YY,ZZ, UIView? >{
		return link(next: backgroundView).then_QK { $0.value.backgroundView = backgroundView }
	}
    @available(iOS 3.2, *)
    open func backgroundView_qk_g() -> QKC<AA,YY,ZZ, UIView? >{
		 self +^ self.value.backgroundView
	}

	// Info
    open func numberOfSections_qk_g() -> QKC<AA,YY,ZZ, Int >{
		 self +^ self.value.numberOfSections
	}

    open func visibleCells_qk_g() -> QKC<AA,YY,ZZ, [UITableViewCell] >{
		 self +^ self.value.visibleCells
	}

    open func indexPathsForVisibleRows_qk_g() -> QKC<AA,YY,ZZ, [IndexPath]? >{
		 self +^ self.value.indexPathsForVisibleRows
	}

	// Returns YES if the table view is in the middle of reordering, is displaying a drop target gap, or has drop placeholders. If possible, avoid calling -reloadData while there are uncommitted updates to avoid interfering with user-initiated interactions that have not yet completed.
    @available(iOS 11.0, *)
    open func hasUncommittedUpdates_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.hasUncommittedUpdates
	}

	// Editing. When set, rows show insert/delete/reorder controls based on data source queries
		// default is NO. setting is not animated.
    open func isEditing_qk_s(_ isEditing:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: isEditing).then_QK { $0.value.isEditing = isEditing }
	}
    open func isEditing_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isEditing
	}

		// default is YES. Controls whether rows can be selected when not in editing mode
    @available(iOS 3.0, *)
    open func allowsSelection_qk_s(_ allowsSelection:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: allowsSelection).then_QK { $0.value.allowsSelection = allowsSelection }
	}
    @available(iOS 3.0, *)
    open func allowsSelection_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.allowsSelection
	}

		// default is NO. Controls whether rows can be selected when in editing mode
    open func allowsSelectionDuringEditing_qk_s(_ allowsSelectionDuringEditing:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: allowsSelectionDuringEditing).then_QK { $0.value.allowsSelectionDuringEditing = allowsSelectionDuringEditing }
	}
    open func allowsSelectionDuringEditing_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.allowsSelectionDuringEditing
	}

		// default is NO. Controls whether multiple rows can be selected simultaneously
    @available(iOS 5.0, *)
    open func allowsMultipleSelection_qk_s(_ allowsMultipleSelection:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: allowsMultipleSelection).then_QK { $0.value.allowsMultipleSelection = allowsMultipleSelection }
	}
    @available(iOS 5.0, *)
    open func allowsMultipleSelection_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.allowsMultipleSelection
	}

		// default is NO. Controls whether multiple rows can be selected simultaneously in editing mode
    @available(iOS 5.0, *)
    open func allowsMultipleSelectionDuringEditing_qk_s(_ allowsMultipleSelectionDuringEditing:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: allowsMultipleSelectionDuringEditing).then_QK { $0.value.allowsMultipleSelectionDuringEditing = allowsMultipleSelectionDuringEditing }
	}
    @available(iOS 5.0, *)
    open func allowsMultipleSelectionDuringEditing_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.allowsMultipleSelectionDuringEditing
	}

	// Selection
		// returns nil or index path representing section and row of selection.
    open func indexPathForSelectedRow_qk_g() -> QKC<AA,YY,ZZ, IndexPath? >{
		 self +^ self.value.indexPathForSelectedRow
	}

		// returns nil or a set of index paths representing the sections and rows of the selection.
    @available(iOS 5.0, *)
    open func indexPathsForSelectedRows_qk_g() -> QKC<AA,YY,ZZ, [IndexPath]? >{
		 self +^ self.value.indexPathsForSelectedRows
	}

	// Appearance
		// show special section index list on right when row count reaches this value. default is 0
    open func sectionIndexMinimumDisplayRowCount_qk_s(_ sectionIndexMinimumDisplayRowCount:  Int ) -> QKC<AA,YY,ZZ, Int >{
		return link(next: sectionIndexMinimumDisplayRowCount).then_QK { $0.value.sectionIndexMinimumDisplayRowCount = sectionIndexMinimumDisplayRowCount }
	}
    open func sectionIndexMinimumDisplayRowCount_qk_g() -> QKC<AA,YY,ZZ, Int >{
		 self +^ self.value.sectionIndexMinimumDisplayRowCount
	}

		// color used for text of the section index
    @available(iOS 6.0, *)
    open func sectionIndexColor_qk_s(_ sectionIndexColor:  UIColor? ) -> QKC<AA,YY,ZZ, UIColor? >{
		return link(next: sectionIndexColor).then_QK { $0.value.sectionIndexColor = sectionIndexColor }
	}
    @available(iOS 6.0, *)
    open func sectionIndexColor_qk_g() -> QKC<AA,YY,ZZ, UIColor? >{
		 self +^ self.value.sectionIndexColor
	}

		// the background color of the section index while not being touched
    @available(iOS 7.0, *)
    open func sectionIndexBackgroundColor_qk_s(_ sectionIndexBackgroundColor:  UIColor? ) -> QKC<AA,YY,ZZ, UIColor? >{
		return link(next: sectionIndexBackgroundColor).then_QK { $0.value.sectionIndexBackgroundColor = sectionIndexBackgroundColor }
	}
    @available(iOS 7.0, *)
    open func sectionIndexBackgroundColor_qk_g() -> QKC<AA,YY,ZZ, UIColor? >{
		 self +^ self.value.sectionIndexBackgroundColor
	}

		// the background color of the section index while it is being touched
    @available(iOS 6.0, *)
    open func sectionIndexTrackingBackgroundColor_qk_s(_ sectionIndexTrackingBackgroundColor:  UIColor? ) -> QKC<AA,YY,ZZ, UIColor? >{
		return link(next: sectionIndexTrackingBackgroundColor).then_QK { $0.value.sectionIndexTrackingBackgroundColor = sectionIndexTrackingBackgroundColor }
	}
    @available(iOS 6.0, *)
    open func sectionIndexTrackingBackgroundColor_qk_g() -> QKC<AA,YY,ZZ, UIColor? >{
		 self +^ self.value.sectionIndexTrackingBackgroundColor
	}

		// default is UITableViewCellSeparatorStyleSingleLine
    open func separatorStyle_qk_s(_ separatorStyle:  UITableViewCell.SeparatorStyle ) -> QKC<AA,YY,ZZ, UITableViewCell.SeparatorStyle >{
		return link(next: separatorStyle).then_QK { $0.value.separatorStyle = separatorStyle }
	}
    open func separatorStyle_qk_g() -> QKC<AA,YY,ZZ, UITableViewCell.SeparatorStyle >{
		 self +^ self.value.separatorStyle
	}

		// default is the standard separator gray
    open func separatorColor_qk_s(_ separatorColor:  UIColor? ) -> QKC<AA,YY,ZZ, UIColor? >{
		return link(next: separatorColor).then_QK { $0.value.separatorColor = separatorColor }
	}
    open func separatorColor_qk_g() -> QKC<AA,YY,ZZ, UIColor? >{
		 self +^ self.value.separatorColor
	}

		// effect to apply to table separators
    @available(iOS 8.0, *)
     open func separatorEffect_qk_s(_ separatorEffect:  UIVisualEffect? ) -> QKC<AA,YY,ZZ, UIVisualEffect? >{
		return link(next: separatorEffect).then_QK { $0.value.separatorEffect = separatorEffect }
	}
    @available(iOS 8.0, *)
     open func separatorEffect_qk_g() -> QKC<AA,YY,ZZ, UIVisualEffect? >{
		 self +^ self.value.separatorEffect
	}

		// if cell layout margins are derived from the width of the readableContentGuide. default is NO.
    @available(iOS 9.0, *)
    open func cellLayoutMarginsFollowReadableWidth_qk_s(_ cellLayoutMarginsFollowReadableWidth:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: cellLayoutMarginsFollowReadableWidth).then_QK { $0.value.cellLayoutMarginsFollowReadableWidth = cellLayoutMarginsFollowReadableWidth }
	}
    @available(iOS 9.0, *)
    open func cellLayoutMarginsFollowReadableWidth_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.cellLayoutMarginsFollowReadableWidth
	}

		// default value is YES
    @available(iOS 11.0, *)
    open func insetsContentViewsToSafeArea_qk_s(_ insetsContentViewsToSafeArea:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: insetsContentViewsToSafeArea).then_QK { $0.value.insetsContentViewsToSafeArea = insetsContentViewsToSafeArea }
	}
    @available(iOS 11.0, *)
    open func insetsContentViewsToSafeArea_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.insetsContentViewsToSafeArea
	}

		// accessory view for above row content. default is nil. not to be confused with section header
    open func tableHeaderView_qk_s(_ tableHeaderView:  UIView? ) -> QKC<AA,YY,ZZ, UIView? >{
		return link(next: tableHeaderView).then_QK { $0.value.tableHeaderView = tableHeaderView }
	}
    open func tableHeaderView_qk_g() -> QKC<AA,YY,ZZ, UIView? >{
		 self +^ self.value.tableHeaderView
	}

		// accessory view below content. default is nil. not to be confused with section footer
    open func tableFooterView_qk_s(_ tableFooterView:  UIView? ) -> QKC<AA,YY,ZZ, UIView? >{
		return link(next: tableFooterView).then_QK { $0.value.tableFooterView = tableFooterView }
	}
    open func tableFooterView_qk_g() -> QKC<AA,YY,ZZ, UIView? >{
		 self +^ self.value.tableFooterView
	}

	// Focus
		// defaults to NO. If YES, when focusing on a table view the last focused index path is focused automatically. If the table view has never been focused, then the preferred focused index path is used.
    @available(iOS 9.0, *)
    open func remembersLastFocusedIndexPath_qk_s(_ remembersLastFocusedIndexPath:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: remembersLastFocusedIndexPath).then_QK { $0.value.remembersLastFocusedIndexPath = remembersLastFocusedIndexPath }
	}
    @available(iOS 9.0, *)
    open func remembersLastFocusedIndexPath_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.remembersLastFocusedIndexPath
	}

	// By default, this will return YES on iPad and NO on iPhone.
    @available(iOS 11.0, *)
    open func dragInteractionEnabled_qk_s(_ dragInteractionEnabled:  Bool) -> QKC<AA,YY,ZZ, Bool>{
		return link(next: dragInteractionEnabled).then_QK { $0.value.dragInteractionEnabled = dragInteractionEnabled }
	}
    @available(iOS 11.0, *)
    open func dragInteractionEnabled_qk_g() -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.dragInteractionEnabled
	}

	// YES if a drag session is currently active. A drag session begins after rows are "lifted" from the table view.
    @available(iOS 11.0, *)
    open func hasActiveDrag_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.hasActiveDrag
	}

	// YES if table view is currently tracking a drop session.
    @available(iOS 11.0, *)
    open func hasActiveDrop_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.hasActiveDrop
	}

    open func numberOfRows_qk_f(inSection section: Int) -> QKC<AA,YY,ZZ,Int>{
		 self +^ self.value.numberOfRows(inSection:section)
	}

		// includes header, footer and all rows
    open func rect_qk_f(forSection section: Int) -> QKC<AA,YY,ZZ,CGRect >{
		 self +^ self.value.rect(forSection:section)
	}

    open func rectForHeader_qk_f(inSection section: Int) -> QKC<AA,YY,ZZ,CGRect>{
		 self +^ self.value.rectForHeader(inSection:section)
	}

    open func rectForFooter_qk_f(inSection section: Int) -> QKC<AA,YY,ZZ,CGRect>{
		 self +^ self.value.rectForFooter(inSection:section)
	}

    open func rectForRow_qk_f(at indexPath: IndexPath) -> QKC<AA,YY,ZZ,CGRect>{
		 self +^ self.value.rectForRow(at:indexPath)
	}

		// returns nil if point is outside of any row in the table
    open func indexPathForRow_qk_f(at point: CGPoint) -> QKC<AA,YY,ZZ,IndexPath? >{
		 self +^ self.value.indexPathForRow(at:point)
	}

		// returns nil if cell is not visible
    open func indexPath_qk_f(for cell: UITableViewCell) -> QKC<AA,YY,ZZ,IndexPath? >{
		 self +^ self.value.indexPath(for:cell)
	}

		// returns nil if rect not valid
    open func indexPathsForRows_qk_f(in rect: CGRect) -> QKC<AA,YY,ZZ,[IndexPath]? >{
		 self +^ self.value.indexPathsForRows(in:rect)
	}

		// returns nil if cell is not visible or index path is out of range
    open func cellForRow_qk_f(at indexPath: IndexPath) -> QKC<AA,YY,ZZ,UITableViewCell? >{
		 self +^ self.value.cellForRow(at:indexPath)
	}

    @available(iOS 6.0, *)
    open func headerView_qk_f(forSection section: Int) -> QKC<AA,YY,ZZ,UITableViewHeaderFooterView?>{
		 self +^ self.value.headerView(forSection:section)
	}

    @available(iOS 6.0, *)
    open func footerView_qk_f(forSection section: Int) -> QKC<AA,YY,ZZ,UITableViewHeaderFooterView?>{
		 self +^ self.value.footerView(forSection:section)
	}

    open func scrollToRow_qk_f(at indexPath: IndexPath, at scrollPosition: UITableView.ScrollPosition, animated: Bool) -> QKC<AA,YY,ZZ, IndexPath>{
		 self +^ self.value.scrollToRow(at:indexPath, at:scrollPosition, animated:animated) +^ indexPath
	}

    open func scrollToNearestSelectedRow_qk_f(at scrollPosition: UITableView.ScrollPosition, animated: Bool) -> QKC<AA,YY,ZZ, UITableView.ScrollPosition>{
		 self +^ self.value.scrollToNearestSelectedRow(at:scrollPosition, animated:animated) +^ scrollPosition
	}

	// Allows multiple insert/delete/reload/move calls to be animated simultaneously. Nestable.
    @available(iOS 11.0, *)
    open func performBatchUpdates_qk_f(_ updates: (() -> Void)?, completion: ((Bool) -> Void)? = nil) -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.performBatchUpdates(updates, completion:completion)
	}

	// Use -performBatchUpdates:completion: instead of these methods, which will be deprecated in a future release.
    open func beginUpdates_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.beginUpdates()
	}

    open func endUpdates_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.endUpdates()
	}

    open func insertSections_qk_f(_ sections: IndexSet, with animation: UITableView.RowAnimation) -> QKC<AA,YY,ZZ, IndexSet>{
		 self +^ self.value.insertSections(sections, with:animation) +^ sections
	}

    open func deleteSections_qk_f(_ sections: IndexSet, with animation: UITableView.RowAnimation) -> QKC<AA,YY,ZZ, IndexSet>{
		 self +^ self.value.deleteSections(sections, with:animation) +^ sections
	}

    @available(iOS 3.0, *)
    open func reloadSections_qk_f(_ sections: IndexSet, with animation: UITableView.RowAnimation) -> QKC<AA,YY,ZZ, IndexSet>{
		 self +^ self.value.reloadSections(sections, with:animation) +^ sections
	}

    @available(iOS 5.0, *)
    open func moveSection_qk_f(_ section: Int, toSection newSection: Int) -> QKC<AA,YY,ZZ, Int>{
		 self +^ self.value.moveSection(section, toSection:newSection) +^ section
	}

    open func insertRows_qk_f(at indexPaths: [IndexPath], with animation: UITableView.RowAnimation) -> QKC<AA,YY,ZZ, [IndexPath]>{
		 self +^ self.value.insertRows(at:indexPaths, with:animation) +^ indexPaths
	}

    open func deleteRows_qk_f(at indexPaths: [IndexPath], with animation: UITableView.RowAnimation) -> QKC<AA,YY,ZZ, [IndexPath]>{
		 self +^ self.value.deleteRows(at:indexPaths, with:animation) +^ indexPaths
	}

    @available(iOS 3.0, *)
    open func reloadRows_qk_f(at indexPaths: [IndexPath], with animation: UITableView.RowAnimation) -> QKC<AA,YY,ZZ, [IndexPath]>{
		 self +^ self.value.reloadRows(at:indexPaths, with:animation) +^ indexPaths
	}

    @available(iOS 5.0, *)
    open func moveRow_qk_f(at indexPath: IndexPath, to newIndexPath: IndexPath) -> QKC<AA,YY,ZZ, IndexPath>{
		 self +^ self.value.moveRow(at:indexPath, to:newIndexPath) +^ indexPath
	}

	// Reloads everything from scratch. Redisplays visible rows. Note that this will cause any existing drop placeholder rows to be removed.
    open func reloadData_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.reloadData()
	}

	// Reloads the section index bar.
    @available(iOS 3.0, *)
    open func reloadSectionIndexTitles_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.reloadSectionIndexTitles()
	}

    open func setEditing_qk_f(_ editing: Bool, animated: Bool) -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.setEditing(editing, animated:animated) +^ editing
	}

	// Selects and deselects rows. These methods will not call the delegate methods (-tableView:willSelectRowAtIndexPath: or tableView:didSelectRowAtIndexPath:), nor will it send out a notification.
    open func selectRow_qk_f(at indexPath: IndexPath?, animated: Bool, scrollPosition: UITableView.ScrollPosition) -> QKC<AA,YY,ZZ, IndexPath?>{
		 self +^ self.value.selectRow(at:indexPath, animated:animated, scrollPosition:scrollPosition) +^ indexPath
	}

    open func deselectRow_qk_f(at indexPath: IndexPath, animated: Bool) -> QKC<AA,YY,ZZ, IndexPath>{
		 self +^ self.value.deselectRow(at:indexPath, animated:animated) +^ indexPath
	}

		// Used by the delegate to acquire an already allocated cell, in lieu of allocating a new one.
    open func dequeueReusableCell_qk_f(withIdentifier identifier: String) -> QKC<AA,YY,ZZ,UITableViewCell? >{
		 self +^ self.value.dequeueReusableCell(withIdentifier:identifier)
	}

		// newer dequeue method guarantees a cell is returned and resized properly, assuming identifier is registered
    @available(iOS 6.0, *)
    open func dequeueReusableCell_qk_f(withIdentifier identifier: String, for indexPath: IndexPath) -> QKC<AA,YY,ZZ,UITableViewCell >{
		 self +^ self.value.dequeueReusableCell(withIdentifier:identifier, for:indexPath)
	}

		// like dequeueReusableCellWithIdentifier:, but for headers/footers
    @available(iOS 6.0, *)
    open func dequeueReusableHeaderFooterView_qk_f(withIdentifier identifier: String) -> QKC<AA,YY,ZZ,UITableViewHeaderFooterView? >{
		 self +^ self.value.dequeueReusableHeaderFooterView(withIdentifier:identifier)
	}

	// Instances returned from the new dequeue method will also be properly sized when they are returned.
    @available(iOS 5.0, *)
    open func register_qk_f(_ nib: UINib?, forCellReuseIdentifier identifier: String) -> QKC<AA,YY,ZZ, UINib?>{
		 self +^ self.value.register(nib, forCellReuseIdentifier:identifier) +^ nib
	}

    @available(iOS 6.0, *)
    open func register_qk_f(_ cellClass: AnyClass?, forCellReuseIdentifier identifier: String) -> QKC<AA,YY,ZZ, AnyClass?>{
		 self +^ self.value.register(cellClass, forCellReuseIdentifier:identifier) +^ cellClass
	}

    @available(iOS 6.0, *)
    open func register_qk_f(_ nib: UINib?, forHeaderFooterViewReuseIdentifier identifier: String) -> QKC<AA,YY,ZZ, UINib?>{
		 self +^ self.value.register(nib, forHeaderFooterViewReuseIdentifier:identifier) +^ nib
	}

    @available(iOS 6.0, *)
    open func register_qk_f(_ aClass: AnyClass?, forHeaderFooterViewReuseIdentifier identifier: String) -> QKC<AA,YY,ZZ, AnyClass?>{
		 self +^ self.value.register(aClass, forHeaderFooterViewReuseIdentifier:identifier) +^ aClass
	}

}

@available(iOS 11.0, *)
extension QKC where AA :UITableViewDropProposal {
	// The default is UITableViewDropIntentUnspecified.
    open func intent_qk_g() -> QKC<AA,YY,ZZ, UITableViewDropProposal.Intent >{
		 self +^ self.value.intent
	}

}

@available(iOS 11.0, *)
extension QKC where AA :UITableViewPlaceholder {
	// Called whenever the placeholder cell is visible to update the contents of the cell.
    open func cellUpdateHandler_qk_s(_ cellUpdateHandler:  ((UITableViewCell) -> Void)?) -> QKC<AA,YY,ZZ, ((UITableViewCell) -> Void)?>{
		return link(next: cellUpdateHandler).then_QK { $0.value.cellUpdateHandler = cellUpdateHandler }
	}
    open func cellUpdateHandler_qk_g() -> QKC<AA,YY,ZZ, ((UITableViewCell) -> Void)?>{
		 self +^ self.value.cellUpdateHandler
	}

}

@available(iOS 11.0, *)
extension QKC where AA :UITableViewDropPlaceholder {
	// If no block is set, or if nil is returned, the entire cell will be used for the preview.
    open func previewParametersProvider_qk_s(_ previewParametersProvider:  ((UITableViewCell) -> UIDragPreviewParameters?)?) -> QKC<AA,YY,ZZ, ((UITableViewCell) -> UIDragPreviewParameters?)?>{
		return link(next: previewParametersProvider).then_QK { $0.value.previewParametersProvider = previewParametersProvider }
	}
    open func previewParametersProvider_qk_g() -> QKC<AA,YY,ZZ, ((UITableViewCell) -> UIDragPreviewParameters?)?>{
		 self +^ self.value.previewParametersProvider
	}

}

